<?php
/*
NEOS PHP Framework
	Todos os direitos reservados - proibida a utilização deste material sem prévia autorização.
	Paulo R. B. Rocha - prbr@ymail.com
	http://neophp.tk
*/

class Site  extends NEOS_models{
	var $add_bd_sucesso;
	var $erro;
	
	function putCadastroLogin($data)
	{ 
		_db("BEGIN");
		if(!$this->VerificaCampo($data)){
			$this->add_bd_sucesso = false;
			$this->erro = "Erro no formulario";
			return;
		}
			
		//Verifica se a pessoa ja esta cadastrada
		$db = _db("SELECT id FROM pessoas WHERE cpf = '".$data['cpf']."'");	
		if($db){
			$this->add_bd_sucesso = false;
			$this->erro = "Voce ja esta cadastrado";
			return;
		}
	
		//recupera informacoes do endereco 	 	 	 	
		$endereco['rua'] = $data['rua']	; 	 	 	 	 	 	
		$endereco['complemento'] = $data['complemento'];		 	 	 	 	 	 	
		$endereco['numero'] = $data['numero'];	 	 	 	 	 	 	
		$endereco['bairro'] = $data['bairro'];		 	 	 	 	 	 	
		$endereco['cidade'] = $data['cidade'];		 	 	 	 	 	 	
		$endereco['cep'] = $data['cep'];		 	 	 	 	 	 	
		$endereco['estado'] = $data['estado'];
		
		//cadastrar a pessoa na tabela pessoa
		$query1 = _db('enderecos',$endereco,'','insert'); //o vetor $dados deve ter a mesma ordem da tabela
		if($query1 < 0){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel adicionar o endereço";
			return;
		}
			
		
		//recupera as informacoes para a tabela pessoa
		$pessoa['nome'] = $data['nome']." ".$data['sobrenome'];  	 
		$sql = "SELECT id FROM enderecos WHERE rua = '".$endereco['rua']."' and bairro = '".$endereco['bairro']."' and numero = ".$endereco['numero']." and complemento = '". $endereco['complemento']."'";
		$Endereco = _db($sql);
		if(!$Endereco){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel recuperar o idendereco";
			return;
		}
		$pessoa['endereco_id'] = $Endereco[0]->id; 		 	 	 	 	 	 	
		$pessoa['telefone'] = $data['telefone'];			 	 	 	 	 	 	
		$pessoa['email'] = $data['email']; 		 
		$danan = explode('/', $data['datanasc']);		
		$pessoa['datanasc'] = $danan[2]."-".$danan[1]."-".$danan[0];
		$pessoa['cpf'] = $data['cpf'];	
		$pessoa['rg'] = $data['rg']; 
		
		//cadastrar a pessoa na tabela pessoa
		$sq = "INSERT INTO  `semanasi`.`pessoas` (`nome` ,`endereco_id` ,`telefone` ,`email` ,`datanasc` ,`cpf` ,`rg`)
VALUES (  '" .$pessoa['nome']. "', '" .$pessoa['endereco_id']. "',  '" .$pessoa['telefone']. "',  '" .$pessoa['email']. "',  '" .$pessoa['datanasc']. "',  '" .$pessoa['cpf']. "',  '" .$pessoa['rg']. "')";
		$query2 = _db($sq);
		if($query2 < 0){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel adicionar a pessoa";
			return;
		}
		
		
		//recupera o id dessa pessoa na tabela pessoa
		$db = _db("SELECT id FROM pessoas WHERE cpf = '".$pessoa['cpf']."'");	
		if(!$db){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel recuperar o idpessoa";
			return;
		}
		$pessoaid = $db[0]->id;

		
		//valida o email
		if(!$this->validaEMAIL($pessoa['email'])){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "E-mail invalido";
			return;
		}
			
		
		//cadastra a pessoa na tabela usuario
		$dadosusuario['pessoa_id'] = $pessoaid;
		$dadosusuario['tipousuario_id'] = $data["tipo"];
		$dadosusuario['senha'] = md5($data['senha']);
		$query3 = _db('usuarios',$dadosusuario,'','insert');
		if($query3 < 0){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel adicionar o usuario";
			return;
		}

		
		//recupera o id dessa pessoa na tabela pessoa
		$db = _db("SELECT id FROM usuarios WHERE pessoa_id = ".$pessoaid );	
		if(!$sql){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel recuperar o idpessoa";
			return;
		}
		$usuarioid = $db[0]->id;
		
		//cadastra a pessoa na tabela de participacao 
		$dadosPaticipante['usuario_id'] = $usuarioid;
		$dadosPaticipante['status_id'] = 3; //3 = aguardando pagamento
		$dadosPaticipante['ano'] = '2011-09-26';
		$query4 = _db('participacoes',$dadosPaticipante,'','insert');
		if($query4 < 0){
			_db("ROLLBACK");
			$this->add_bd_sucesso = false;
			$this->erro = "Não foi possivel adicionar a partipacao";
			return;
		}

		//tudo ocorreu bem entao a variavel add_bd_sucesso é setada para true
		$this->add_bd_sucesso = true;

		_db("COMMIT");
	}
	

	function VerificaCampo($data){
		 foreach( $data as $i)
			if( $i == '')
				return false;
	
		return true;
	}
	function validaEMAIL($email){ 
		   $mail_correcto = 0; 
		   //verifico umas coisas 
		   if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ 
			  if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { 
				 //vejo se tem caracter . (ponto)
				 if (substr_count($email,".")>= 1){ 
					//obtenho a terminação do dominio 
					$term_dom = substr(strrchr ($email, '.'),1); 
					//verifico que a terminação do dominio seja correcta 
				 if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ 
					//verifico que o de antes do dominio seja correcto 
					$antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); 
					$caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
					if ($caracter_ult != "@" && $caracter_ult != "."){ 
					   $mail_correcto = 1; 
					} 
				 } 
			  } 
		   } 
		} 

		if ($mail_correcto) 
		   return true; 
		else 
		   return false; 
	}
	
}
